% ----- Trabalhando com distribuição exponencial ------------
 SAMPLES = 100;
% MEAN = 1; 
% mu = repmat(MEAN, SAMPLES,1); %Cria um vetor com 1000 ocorrencias do valor
%                         % 1 (primeiro parametro).
% x = exprnd(mu); %Cria um vetor de numeros aleatorios
%                 % de tamanho igual ao de "mu", segundo
%                 %distribuicao exponencial com parametro mu.
%--------- end Distribuição Exponencial ------------------

x = rand(SAMPLES);

%Geração do histograma e plotagens : 
calc_mean = mean(x)
calc_var = var(x)
hist_range = 0:0.05:8;
bincount = histc(x, hist_range); %cria um histograma dos valores de x
                                 %correspondentes a hist_range.
subplot(2,1,1)
bar(hist_range,bincount, 'histc') %plota o histograma (de fato se parece uma
                                  %exponencial a partir de 1000 amostras.
subplot(2,1,2)
plot(x)

%---------------------------------------------------
%Calculo da entropia :
% Obs : fazer com a frequencia individual de cada valor
%encontrado não seria viável, já que experimentando e utilizando
%unique, no vetor "x", o tamanho era sempre o mesmo de x, ou seja
%nenhum elemento se repete.
calc_entropy = 0;
sum_bincount = sum(bincount)*size(bincount,1)
for i=1:size(bincount)-1
    prob = bincount(i)/(sum_bincount*0.05); %prob = frequency/number of elements
    if (prob > 1)
        'ERRO!!!!'
    end
    calc_entropy = calc_entropy - (prob*log2(prob));
end

calc_entropy
lambda = inv(MEAN);
expected_entropy = 1 - log(lambda)


                              